3. Dados

1 Diretório

2 Pacotes e diretório

3 Importação

4 Pacote rio

O pacote rio é um pacote R relativamente recente utilizado para importação e exportação de dados. Ele faz suposições sobre o formato do arquivo (veja os formatos suportados aqui), ou seja, adivinha o formato do arquivo que você está tentando importar e, consequentemente, aplica funções de importação apropriadas a esse formato. Tudo isso é feito com a função import().

4.1 Do excel

4.1.1 Um arquivo

# primeira planilha do excel
df_excel <- import("df_excel.xlsx")
df_excel
   RAD REP AF_M2       AF      MST
1   50   1  5.02 5016.429 12.30785
2   50   2  3.65 3648.359 10.73315
3   50   3  3.93 3925.333 10.86140
4   50   4  4.71 4705.269 10.97850
5   70   1  6.12 6118.425 15.75180
6   70   2  5.61 5614.233 13.30495
7   70   3  5.11 5109.944 13.88435
8   70   4  4.98 4975.857 13.09225
9  100   1  5.46 5464.528 16.92240
10 100   2  5.55 5551.951 14.93085
11 100   3  5.72 5723.849 16.12900
12 100   4  5.87 5869.697 15.78145

4.1.2 Vários arquivos

(padrao <- list.files(pattern = "df_excel"))
[1] "df_excel.xlsx"
df_lista <- import_list(file = padrao)
str(df_lista)
List of 2
 $ Planilha1:'data.frame':  12 obs. of  5 variables:
  ..$ RAD  : num [1:12] 50 50 50 50 70 70 70 70 100 100 ...
  ..$ REP  : num [1:12] 1 2 3 4 1 2 3 4 1 2 ...
  ..$ AF_M2: num [1:12] 5.02 3.65 3.93 4.71 6.12 5.61 5.11 4.98 5.46 5.55 ...
  ..$ AF   : num [1:12] 5016 3648 3925 4705 6118 ...
  ..$ MST  : num [1:12] 12.3 10.7 10.9 11 15.8 ...
 $ traits   :'data.frame':  12 obs. of  2 variables:
  ..$ AF : num [1:12] 5016 3648 3925 4705 6118 ...
  ..$ MST: num [1:12] 12.3 10.7 10.9 11 15.8 ...

5 Rstudio

A forma mais comum do pesquisador digitar seus dados é através de planilhas eletrônicas do Excel. Para carregar esses dados, basta ir em Import Dataset na área de trabalho. O passo a passo está descrito abaixo:

Importando dados de planilhas eletrônicas do Excel - Passo 1

Importando dados de planilhas eletrônicas do Excel - Passo 2

Importando dados de planilhas eletrônicas do Excel - Passo 3

6 Exportar

# exportar para excel
export(df_excel, "exportado.xlsx")

7 Tutorial Importação e Exportação

8 Dados tidy

Conjuntos de dados organizados são fáceis de manipular, modelar e visualizar, e possuem uma estrutura específica: cada variável é uma coluna, cada observação é uma linha e cada tipo de unidade observacional é uma tabela (Wickham, 2014)1

8.1 Mesmos dados, diferentes formas

Nesta seção você aprenderá organizar dados no R no formato tidy. Colocar seus dados nesse formato requer algum trabalho inicial, mas esse trabalho compensa a longo prazo. Aqui, um foco especial será dado nas funções do pacote tidyr e do pacote metan. Se você quiser saber mais sobre a teoria por tras dos dados tidy, poderá apreciar o artigo Tidy Data.

Você pode representar os mesmos dados várias maneiras. O exemplo abaixo mostra os mesmos dados organizados de quatro maneiras diferentes. Cada conjunto de dados mostra os mesmos valores de duas variáveis (ALT_ESP, ALT_PLANT) mensuradas em três híbridos (HIBRIDO), considerando três repetições (BLOCOS).

df <- import_list("examples_data.xlsx")
df$df1
  HIBRIDO BLOCO ALT_PLANT ALT_ESP
1      H1     I     3.002   1.878
2      H1    II     2.974   1.834
3      H1   III     2.814   1.674
4      H2     I     2.104   0.910
5      H2    II     2.120   1.034
6      H2   III     1.924   1.018
7      H3     I     2.132   1.052
8      H3    II     2.126   1.012
9      H3   III     2.182   0.992
df$df2
   HIBRIDO BLOCO  VARIAVEL VALOR
1       H1     I ALT_PLANT 3.002
2       H1     I   ALT_ESP 1.878
3       H1    II ALT_PLANT 2.974
4       H1    II   ALT_ESP 1.834
5       H1   III ALT_PLANT 2.814
6       H1   III   ALT_ESP 1.674
7       H2     I ALT_PLANT 2.104
8       H2     I   ALT_ESP 0.910
9       H2    II ALT_PLANT 2.120
10      H2    II   ALT_ESP 1.034
11      H2   III ALT_PLANT 1.924
12      H2   III   ALT_ESP 1.018
13      H3     I ALT_PLANT 2.132
14      H3     I   ALT_ESP 1.052
15      H3    II ALT_PLANT 2.126
16      H3    II   ALT_ESP 1.012
17      H3   III ALT_PLANT 2.182
18      H3   III   ALT_ESP 0.992
df$df3
  HIBRIDO ALT_ESP_I ALT_ESP_II ALT_ESP_III ALT_PLANT_I ALT_PLANT_II
1      H1     1.878      1.834       1.674       3.002        2.974
2      H2     0.910      1.034       1.018       2.104        2.120
3      H3     1.052      1.012       0.992       2.132        2.126
  ALT_PLANT_III
1         2.814
2         1.924
3         2.182
df$df4
  HIBRIDO      name     I    II   III
1      H1 ALT_PLANT 3.002 2.974 2.814
2      H1   ALT_ESP 1.878 1.834 1.674
3      H2 ALT_PLANT 2.104 2.120 1.924
4      H2   ALT_ESP 0.910 1.034 1.018
5      H3 ALT_PLANT 2.132 2.126 2.182
6      H3   ALT_ESP 1.052 1.012 0.992

Essas são todas representações dos mesmos dados, mas são completamente diferentes do ponto de vista de uso.

O que não fazer

Vamos assumir que queiramos computar a média da variável ALT_PLANT. Observe os quatro exemplos abaixo e veja qual está correto.

mean(df$df1$ALT_PLANT)
[1] 2.375333
mean(df$df2$VALOR)
[1] 1.821222
mean(df$df3$ALT_PLANT_I)
[1] 2.412667
mean(df$df4$I)
[1] 1.846333

Um conjunto de dados tidy é um conjunto de dados onde as três regras à seguir são respeitadas:

  1. Cada variável deve ter sua própria coluna.
  2. Cada observação deve ter sua própria linha.
  3. Cada valor deve ter sua própria célula.

A Figura à seguir mostra as regras visualmente.

Adaptado de https://r4ds.had.co.nz/tidy-data.html#tidy-data-1

Após vermos estas regras, percebemos que dos quatro conjuntos apresentados anteriormente, apenas df é tidy. Ao usarmos conjuntos de dados tidy vamos poder aproveitar uma das belezas do R: a possibilidade de aplicar funções à vetores, que neste caso nada mais são do que os valores presentes em cada coluna.

9 Inspeção

maize <- df$maize
plot_intro(maize)

# pacote metan
inspect(maize, plot = TRUE)
# A tibble: 10 × 10
   Variable   Class     Missing Levels Valid_n   Min Median    Max Outlier Text 
   <chr>      <chr>     <chr>   <chr>    <int> <dbl>  <dbl>  <dbl>   <dbl> <chr>
 1 AMB        character No      0          780  NA    NA     NA         NA Line…
 2 HIB        character No      0          780  NA    NA     NA         NA Line…
 3 REP        character No      0          780  NA    NA     NA         NA Line…
 4 APLA_PLANT numeric   Yes     -          772   0     2.52   3.3        7 <NA> 
 5 AIES_PLANT numeric   No      -          780   0.5   1.38   2.39       1 <NA> 
 6 CESP       numeric   Yes     -          776   0.8  15.4   20.4       16 <NA> 
 7 DIES       numeric   Yes     -          779  36.4  50.0   59.7        1 <NA> 
 8 MGRA       numeric   No      -          780  58.5 174.   291.         0 <NA> 
 9 MMG        numeric   No      -          780 123.  344.   546.         6 <NA> 
10 NGRA       numeric   Yes     -          779 147   517    903         10 <NA> 
Warning: Considering the levels of factors, .data should have 1 rows, but it
has 780. Use 'as_factor()' for coercing a variable to a factor.
Warning: Expected three or more factor variables. The data has only 0.
Warning: Missing values in variable(s) APLA_PLANT, CESP, DIES, NGRA.
Warning: Possible text fragments in variable(s) AMB, HIB, REP.
Warning: Possible outliers in variable(s) APLA_PLANT, AIES_PLANT, CESP, DIES,
MMG, NGRA. Use 'find_outliers()' for more details.
Warning: Zero values observed in variable(s) APLA_PLANT.

9.1 Preencher valores

Observe o seguinte conjunto de dados

Na hora da coleta de dados é muito comum observar células mescladas em conjuntos de dados. Observe o que acontece quando estes dados são importados para o software R.

(mesclado <- df$fill)
    AMB HIBRIDO BLOCO ALT_PLANT
1    A1      H1     I     3.002
2  <NA>    <NA>    II     2.974
3  <NA>    <NA>   III     2.814
4  <NA>      H2     I     2.104
5  <NA>    <NA>    II     2.120
6  <NA>    <NA>   III     1.924
7    A2      H1     I     3.002
8  <NA>    <NA>    II     2.974
9  <NA>    <NA>   III     2.814
10 <NA>      H2     I     2.104
11 <NA>    <NA>    II     2.120
12 <NA>    <NA>   III     1.924

A função fill() do pacote tidyr pode ser utilizada para preencher valores faltantes. Ela preenche os valores ausentes nas colunas selecionadas. Isso é útil no formato de saída comum em que os valores não são repetidos e são registrados apenas quando são alterados. Par

(preenchido <- fill(mesclado, AMB, HIBRIDO))
   AMB HIBRIDO BLOCO ALT_PLANT
1   A1      H1     I     3.002
2   A1      H1    II     2.974
3   A1      H1   III     2.814
4   A1      H2     I     2.104
5   A1      H2    II     2.120
6   A1      H2   III     1.924
7   A2      H1     I     3.002
8   A2      H1    II     2.974
9   A2      H1   III     2.814
10  A2      H2     I     2.104
11  A2      H2    II     2.120
12  A2      H2   III     1.924

Footnotes

  1. Wickham, Hadley. 2014. “Tidy Data”. Journal of Statistical Software 59: 1–23.↩︎